P1DATA	.equ	2

TCSR	.equ	8
TIMER	.equ	9
TOCR	.equ	11

KVSPRT	.equ	$bfff

	.org	$4600

start	ldaa	#$40
	staa	>$bfff
	staa	vdgreg

vsync	ldd	TOCR
	addd	#3990
	pshb
	psha
	pulx
	ldab	TCSR
	stx	TOCR
vbloop	ldab	TCSR
	andb	#$40
	beq	vbloop

	ldaa	vdgreg
	eora	#$40
	staa	>$bfff
	staa	vdgreg

	ldd	TOCR
	addd	#10944
	pshb
	psha
	pulx
	ldab	TCSR
	stx	TOCR

inpre.1 ldaa	#$f7
	staa	P1DATA
	ldaa	KVSPRT
	anda	#$04
	bne	inpre.2
	ldab	#$01
	bra	vadjust

inpre.2 ldaa	#$fd
	staa	P1DATA
	ldaa	KVSPRT
	anda	#$01
	bne	inpre.3
	ldab	#$ff
	bra	vadjust

inpre.3 ldaa	#$fb
	staa	P1DATA
	ldaa	KVSPRT
	anda	#$08
	bne	inpre.4
	ldab	#$39
	bra	vadjust

inpre.4 ldaa	#$7f
	staa	P1DATA
	ldaa	KVSPRT
	anda	#$04
	bne	vloop
	ldab	#$c7

vadjust	tstb
	bmi	vadj.1
	clra
	bra	vadj.2

vadj.1	ldaa	#$ff

vadj.2	addd	TOCR
	pshb
	psha
	pulx
	ldab	TCSR
	stx	TOCR

vloop	ldab	TCSR
	andb	#$40
	beq	vloop

	ldaa	vdgreg
	eora	#$40
	staa	>$bfff
	staa	vdgreg

	jmp	vsync

vdgreg	.byte	0

	.end
